#!/usr/bin/env python3

import gi
gi.require_version('CinnamonDesktop', '3.0')
from gi.repository import CinnamonDesktop, GLib, GObject
import sys


def install_finished_cb(success, data=None):
    if success:
        print("Install Finished!")
    else:
        print("Install Failed!")
    quit()

def check_finished_cb(success, data=None):
    if success:
        print("Packages already installed!")
    else:
        print("Some packages missing!")
    quit()

def working_cb():
    print("working...")
    return True

if (len(sys.argv) < 3 or sys.argv[1] not in ("install", "check")):
    print ("""

Usage:
        installer-test install|check package_1 [package_2 ...]

""")
    quit()

i = 2
pkgs = []

while i < len(sys.argv):
    pkgs.append(sys.argv[i])
    i+=1
print( "Working with packages: %s" % pkgs )

# Testing non-blocking-ness of the installer
GObject.timeout_add(250, working_cb)


if (sys.argv[1] == "install"):
    CinnamonDesktop.installer_install_packages(pkgs, install_finished_cb, None)
else:
    CinnamonDesktop.installer_check_for_packages(pkgs, check_finished_cb, None)


ml = GLib.MainLoop.new(None, True)
ml.run()
